ASP.NET Core এ Web API তৈরি করা খুবই সহজ এবং এর জন্য আমরা সাধারণত API Controllers ব্যবহার করি। RESTful Services হলো একটি আর্কিটেকচারাল স্টাইল যা HTTP প্রোটোকল ব্যবহার করে ক্লায়েন্ট এবং সার্ভারের মধ্যে কমিউনিকেশন তৈরি করে। API Controllers এর মাধ্যমে আপনি একটি RESTful API তৈরি করতে পারবেন, যা ক্রস-প্ল্যাটফর্ম ক্লায়েন্টের সাথে যোগাযোগ করতে সক্ষম হয়।
ASP.NET Core-এ API Controller একটি বিশেষ ধরনের Controller যা HTTP রিকোয়েস্ট (GET, POST, PUT, DELETE) গ্রহণ করে এবং HTTP রেসপন্স প্রদান করে। এটি মূলত ডেটা প্রসেসিং এবং JSON বা XML আউটপুট প্রদান করে। API Controllers সাধারণত ক্লায়েন্ট এবং সার্ভারের মধ্যে ডেটা আদান-প্রদান করতে ব্যবহৃত হয়।
API Controller তৈরি করতে, ASP.NET Core এর ControllerBase ক্লাস ইনহেরিট করতে হয়, যা বিশেষভাবে API Controllers-এর জন্য ডিজাইন করা হয়েছে। এটি ActionResult অথবা IActionResult রিটার্ন করে, যা HTTP রেসপন্সের স্ট্যাটাস কোড এবং ডেটা ফেরত পাঠায়।
ধরা যাক, একটি Product মডেল এবং তার জন্য API Controller তৈরি করতে হবে।
Model:
public class Product
{
public int Id { get; set; }
public string Name { get; set; }
public decimal Price { get; set; }
}
API Controller:
[Route("api/[controller]")]
[ApiController]
public class ProductsController : ControllerBase
{
private static List<Product> products = new List<Product>
{
new Product { Id = 1, Name = "Laptop", Price = 1500.00M },
new Product { Id = 2, Name = "Phone", Price = 800.00M }
};
// GET api/products
[HttpGet]
public IActionResult Get()
{
return Ok(products); // 200 OK with products data
}
// GET api/products/1
[HttpGet("{id}")]
public IActionResult Get(int id)
{
var product = products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // 404 Not Found
}
return Ok(product); // 200 OK with product data
}
// POST api/products
[HttpPost]
public IActionResult Post([FromBody] Product product)
{
if (product == null)
{
return BadRequest(); // 400 Bad Request
}
products.Add(product);
return CreatedAtAction(nameof(Get), new { id = product.Id }, product); // 201 Created
}
// PUT api/products/1
[HttpPut("{id}")]
public IActionResult Put(int id, [FromBody] Product product)
{
var existingProduct = products.FirstOrDefault(p => p.Id == id);
if (existingProduct == null)
{
return NotFound(); // 404 Not Found
}
existingProduct.Name = product.Name;
existingProduct.Price = product.Price;
return NoContent(); // 204 No Content
}
// DELETE api/products/1
[HttpDelete("{id}")]
public IActionResult Delete(int id)
{
var product = products.FirstOrDefault(p => p.Id == id);
if (product == null)
{
return NotFound(); // 404 Not Found
}
products.Remove(product);
return NoContent(); // 204 No Content
}
}
[Route("api/[controller]")]
— এটি API Controller এর রাউটিং কনফিগার করে। [controller]
অংশটি নিজে থেকেই "Products" রাউট হিসাবে রূপান্তরিত হয়।Get()
: GET রিকোয়েস্ট হ্যান্ডল করে।Post()
: POST রিকোয়েস্ট হ্যান্ডল করে।Put()
: PUT রিকোয়েস্ট হ্যান্ডল করে।Delete()
: DELETE রিকোয়েস্ট হ্যান্ডল করে।Ok()
: 200 OKNotFound()
: 404 Not FoundBadRequest()
: 400 Bad RequestCreatedAtAction()
: 201 CreatedNoContent()
: 204 No ContentREST (Representational State Transfer) একটি আর্কিটেকচারাল স্টাইল, যা ওয়েব সার্ভিসগুলোর মধ্যে ডেটা অ্যাক্সেস করার প্রক্রিয়া নির্ধারণ করে। RESTful API সার্ভিসগুলো HTTP প্রোটোকল ব্যবহার করে এবং সাধারণত JSON বা XML আউটপুট প্রদান করে। RESTful API তৈরির জন্য কিছু নিয়মাবলী অনুসরণ করা হয়:
এটি একটি সাধারণ উদাহরণ যেখানে GET
এবং POST
মেথড ব্যবহার করা হয়েছে:
/api/products
— সমস্ত প্রোডাক্টের তালিকা ফেরত দেয়।/api/products/{id}
— নির্দিষ্ট প্রোডাক্টের তথ্য ফেরত দেয়।/api/products
— একটি নতুন প্রোডাক্ট তৈরি করে।/api/products/{id}
— বিদ্যমান প্রোডাক্টের তথ্য আপডেট করে।/api/products/{id}
— প্রোডাক্টটি মুছে ফেলে।ASP.NET Core-এ API Controllers এবং RESTful Services তৈরি করা খুবই সহজ এবং এটি অত্যন্ত শক্তিশালী। API Controllers HTTP রিকোয়েস্টগুলোকে প্রসেস করে এবং যথাযথ HTTP রেসপন্স প্রদান করে। RESTful API ডেভেলপমেন্টের জন্য HTTP মেথড এবং রিসোর্স ভিত্তিক রাউটিং ব্যবহার করা হয়, যা ক্লায়েন্ট-সার্ভার কমিউনিকেশনকে সহজ এবং কার্যকরী করে।
common.read_more